<?php
/* 
 * ********* CVS HEADER ********* 
 * 
 * $RCSfile: admenvedit.php,v $ 
 * $Date: 2007/07/30 21:16:45 $ 
 * $Revision: 1.5 $ 
 * 
 * ********* CVS HEADER ********* 
 */
if(strpos($file,'..')===false){}else{header('Location: ?op=');exit;}
$msg='';
if (!isset($argid)) {
	rportalerreur("Aucun environnement en param&egrave;tre !","?op=admenvliste");
}
$query="SELECT * FROM environnement WHERE id='$argid'";
$result=rportalrequete($query) or rportalerreur($query,"?op=admenvliste");	
if($environnement=rportalligne($result))
{
	$L_base_env = get_env_path();
    $fichier=$L_base_env.$environnement['nom']."/".$file;
    if($action=="Sauver"){
        $str = stripslashes($str);
        $fp = fopen($fichier, "w");
        fwrite($fp, $str);
        fclose($fp);
        $msg = "Correctement sauvegard&eacute; : ".$row['code'];
        if($file=='environnement.html'){
            require_once(get_path_module("environnement.environnement"));
            $env = new environnement;
            $env=restaure_environnement($environnement['environnement']);
            $env->setnom($environnement['nom']);
            $env->extracttpl();
            $env->extractbox();
            //On cree un fichier pur sans les tpl pour la generation de l'environnement
            $fp = fopen($fichier.'.pur', "w");
            fwrite($fp, $env->killtplfromstring($str));
            fclose($fp);
            $modif = $environnement['modification'];
            $modif = "Modification du fichier environnement.html\n" . $modif; 
            $query="UPDATE environnement SET environnement='".$env->serialize()."',lastmod=NOW(),modification='".addslashes($modif)."' WHERE id='$argid'";
            @rportalrequete($query) or rportalerreur($query,"?op=admenvmod&argid=$argid");   
        }
        if($tpl==="yes"){
            require_once(get_path_module("environnement.environnement"));
            $env = new environnement;
            $env=restaure_environnement($environnement['environnement']);
            $fichier2=$L_base_env.$environnement['nom']."/environnement.html";
            $fp = fopen($fichier2, "r");
            $content = fread($fp, filesize($fichier2));
            fclose($fp);
            /**
              * On va modifier le template dans environnement.html
              */
            $my_tpl=$env->gettpl($tplid);
            $pattern = "|<rportal::tpl[^>]*name=\"".$my_tpl->getnom()."\".*>(.*)<\/rportal::tpl>|misU";
            //echo $pattern;
            //exit;
            $replace = "<rportal::tpl name=\"".$my_tpl->getnom()."\" description=\"".$my_tpl->getdescription()."\" file=\"".$my_tpl->getfichier()."\">".$str."</rportal::tpl>";
            $content = preg_replace($pattern, $replace,$content);
            $fp = fopen($fichier2, "w");
            fwrite($fp, $content);
            fclose($fp);
            $modif = $environnement['modification'];
            $modif = "Modification du template ".$my_tpl->getnom().".\n" . $modif;
            $query="UPDATE environnement SET lastmod=NOW(),modification='".addslashes($modif)."' WHERE id='$argid'";
            @rportalrequete($query) or rportalerreur($query,"?op=admenvmod&argid=$argid");
        }
    }
    require_once(get_path("module")."TPLN/TPLN.php");
    $TPLN = new TPLN;
    // On empeche le parsing du chrono et des requetes sql
    $TPLN->_RP_ParseSQL = false; //on ne parse pas le compteur SQL
	$TPLN->_RP_ParseChrono = false; // On ne parse pas le chrono
    
    $TPLN->Open($op_basepath.get_path("tpl")."admenvedit.html");
    $TPLN->IncludeFile("header",$L_base_env.$session['environnement']."/header.php");
    
    require_once(get_path_module("admin")); 
	$pc = new panneau_controle(); 
	$pc->calculRubriqueParFonction('admenvliste'); 
	$TPLN->Parse("panneau_controle",$pc->retourneEntete());
    
    $TPLN->Parse("argid",$argid);
    $TPLN->Parse("environnement",$environnement['nom']);
    $TPLN->Parse("description",$environnement['description']);
    $TPLN->Parse("fichier",$file);
    $TPLN->Parse("msg",$msg);
    if (file_exists($fichier)) {
        $fp = fopen($fichier, "r");
        $content = fread($fp, filesize($fichier));
        fclose($fp);
        $content = str_replace("\t", "  ",$content);
        $TPLN->Parse("contenu",htmlspecialchars($content));
    }else{
        $TPLN->Parse("contenu",'');
    }
    $TPLN->IncludeFile("footer",$L_base_env.$session['environnement']."/footer.php");
    if($tpl==="yes"){
        $TPLN->Parse("tpl","yes");
        $TPLN->Parse("tpl_id",$tplid);
    }else{
        $TPLN->Parse("tpl","no");
        $TPLN->Parse("tpl_id",-1);
    }
    $TPLN->Write();
}
?>